CAMFuzz: Explainable Fuzzing with Local Interpretation
نویسندگان
چکیده
Abstract Grey-box fuzzing techniques have been widely used in software bug finding. In general, there are many decisions to make the process, including which code block target program should be explored first, bytes of an input seed mutated reach block, and how mutate chosen bytes. However, existing solutions usually rely on random exploration or certain heuristics choose where fuzz, limits efficiency fuzzing. this paper, we propose a novel solution CAMFuzz guide process with explainable artificial intelligence (XAI). First, dynamic weight adjustment algorithm, considers both difficulty reaching number unvisited blocks nearby, find worthy explore first. Second, utilize local interpretation technique, i.e., class activation mapping (CAM), recognize part given block. Therefore, can distinguish is more important positions file order achieve better coverage finding efficiency. Third, further help fuzzer increase efficiency, leverage lightweight static analysis identify magic values. We implement prototype evaluate it 13 real-world programs (including 11 open source targets, 2 closed-source commercial products Microsoft component Hancom Office) Results show that outperforms state-of-the-art fuzzers To detail, average achieves 2.07 $$\times$$ × bugs 1.17 improvements. total, found 19 previously unknown vulnerabilities, 6 assigned by CVE so far.
منابع مشابه
Local Outlier Detection with Interpretation
Outlier detection aims at searching for a small set of objects that are inconsistent or considerably deviating from other objects in a dataset. Existing research focuses on outlier identification while omitting the equally important problem of outlier interpretation. This paper presents a novel method named LODI to address both problems at the same time. In LODI, we develop an approach that exp...
متن کاملFuzzing with Code Fragments (-2)
Fuzz testing is an automated technique providing random data as input to a software system in the hope to expose a vulnerability. In order to be effective, the fuzzed input must be common enough to pass elementary consistency checks; a JavaScript interpreter, for instance, would only accept a semantically valid program. On the other hand, the fuzzed input must be uncommon enough to trigger exce...
متن کاملExplainable Planning
As AI is increasingly being adopted into application solutions, the challenge of supporting interaction with humans is becoming more apparent. Partly this is to support integrated working styles, in which humans and intelligent systems cooperate in problem-solving, but also it is a necessary step in the process of building trust as humans migrate greater responsibility to such systems. The chal...
متن کاملImproving Fuzzing with Symbolic Execution
Fuzzing is a great technique to, for example, discover and reproduce software system vulnerabilities. However, there exist problems with finding test inputs for complex checks (e.g., string equality checks). A recent approach proposes to combine fuzzing techniques with symbolic execution to effectively tackle this problem [1]. The student should examine and discuss the approach given in the pap...
متن کاملDistributed evolutionary fuzzing with Evofuzz
This paper describes the design of a tool (called Evofuzz) that implements the technique of evolutionary (or coverage-guided) fuzzing in a scalable, distributed manner. The architecture, design-choices and implementation specifics of this tool are examined, explained and criticized. After outlining possible improvements and future work that is not yet completed, the paper finishes by presenting...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
ژورنال
عنوان ژورنال: Cybersecurity
سال: 2022
ISSN: ['2523-3246']
DOI: https://doi.org/10.1186/s42400-022-00116-x